package com.vhall.component.controller.account.facade.adm;

import com.vhall.component.entity.account.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * @author longzhen.gong
 * @date 2021/6/9 18:59
 */
@FeignClient(name = "AdmRoleFacade", path = "/v4/account/admin/role")
public interface AdmRoleFacade {

    /**
     * 获取角色信息
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("/get")
    GetRoleInfoRspVO getRoleInfo(@Validated GetRoleInfoReqVO reqVO);

    /**
     * 列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("list")
    GetRoleListRspVO getRoleList(@Validated GetRoleListReqVO reqVO);

    /**
     * 增加角色
     *
     * @param reqVo 参数
     * @return 返回值
     */
    @PostMapping("/add")
    RoleAddRspVo addRole(@Validated RoleAddReqVo reqVo);

    /**
     * 编辑角色
     *
     * @param reqVo 参数
     * @return 返回值
     */
    @PostMapping("/edit")
    Integer editRole(@Validated RoleEditReqVo reqVo);

    /**
     * 删除所哟角色
     *
     * @param reqVo 参数
     * @return 返回值
     */
    @PostMapping("/delete-all")
    List deleteRole(@Validated RoleDeleteReqVo reqVo);
}
